package jmine.tec.report.api;

import java.util.List;

/**
 * Interface para relatórios.
 * 
 * @author lundberg
 */
public interface Report extends RendererTarget {

    /**
     * Obtém o cabeçalho do relatório.
     * 
     * @return header
     */
    ReportHeader getHeader();

    /**
     * Obtém os elementos que compõe o relatório
     * 
     * @return List de ReportElement
     */
    List<ReportElement> getElements();

    /**
     * Adiciona um elemento ao report
     * 
     * @param element reportElement
     */
    void addElement(ReportElement element);
    
    /**
     * Obtém o rodape do relatório.
     * 
     * @return footer
     */
    ReportFooter getFooter();
}
